This invention relates generally to database managers, and more particularly to database access data in a distributed environment.
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software and data as described below and in the drawings hereto: Copyright(copyright) 2000, Microsoft Corporation, All Rights Reserved.
In conventional database technology, the database management components are designed to support a continuous open connection between client and server. However, a continuous open connection is not well-suited to a message-based loosely-coupled network, such as the Internet, where knowledge of state information by the client, by the server and by intermediate tiers, is unneeded.
Conventional technologies use core application programming interfaces (APIs), a set of routines used by an application program, to direct the performance of procedures of a database manager. More specifically, conventional database API technologies include Open Database Connectivity (ODBC) created by the SQL Access Group and Java Database Connectivity JDBC that support basic Structure Query Language (SQL) functionality in which a connection is established having various states associated with the connection, a cursor is used to query data, and a result set is obtained. In JDBC and object-oriented versions of ODBC, a connection object is used to manage the connection, and the state of the connection is attributes/properties/data of the object.
Another conventional technology of state-dependent data access is sockets. A socket is a means of communicating between a client program and a server program in a network. A socket is defined as xe2x80x9cthe endpoint in a connection.xe2x80x9d Sockets are created and used with a set of programming requests or xe2x80x9cfunction callsxe2x80x9d sometimes called the sockets API. The conventional technology of database access APIs is problematic because the APIs are full-featured APIs, analogous to the instruction set of complex instruction set computer (CISC), which has large overhead in the size of the program code and in the speed of processing. Conventional APIs are used in narrow limited scopes, such as using the API to retrieve data from a database into an array in the client, use or modify the data in the client, and then store a portion of the data in the database. In conventional database access, a full-featured A.P.I. is implemented by the DBMS and the client, but usually is unused. Conventional APIs are not used in the full scope of the purpose of the APIs.
Furthermore, conventional database access in multiple tiered architectures is static and state dependent. For example, in database access across the Internet, at least three tiers are involved, the client, a web server, and a content server (e.g. database server). Furthermore, the presentation of data is static because the middle tier, the web server, receives requested data from the database server and transforms the data for presentation by the client. In multiple tier architectures, there is no direct connection between the first tier (e.g. the client) and the last tier (e.g. the database server). Nonetheless, the intermediate tiers (e.g. web server) maintain state information on the connections to the other tiers (e.g. the connection between the client and the web server and the connection between the web server and the database server). However, the requirement of maintaining state information is burdensome and problematic when scaling the web servers to accommodate different configurations and throughput requirements. Furthermore, conventional data architecture is based on hierarchy in which data items are structured in a tree, with parent items and child items. However conventional database architecture is based on relations, which is inconsistent with data architecture. Therefore, implementing data architecture and database architecture required additional design and programming to reconcile appropriately.
The above-mentioned shortcomings, disadvantages and problems are addressed by the present invention, which will be understood by reading and studying the following specification.
The present invention encompasses an object that communicates with a data store, such as a database manager that has a schema, through a data access model, and that communicates with a data set, in which the data is factored out of a programming model. The data set has no information on the schema, rather the schema information is present in the object, and the object acts as an interface between the schema of the data store, and the data set.
In one aspect of the present invention, where the object, referred to as an adapter, is implemented on a webserver, and where a dataset is implemented on a client connected to the webserver, the client needs no knowledge of the state of the database or the schema of the database. Therefore, the client interacts with the webserver without the burden of interacting under the constraints of the database state or schema. As a result, programming database access in the client is simplified. Furthermore, the elimination of state-awareness on the part of the client provides an architecture that is more easily scalable. A dataset is a collection of related information composed of separate elements that can be treated as a unit.
Another aspect of the invention is a method for managing data that includes receiving a dataset, inferring a typed data set accessor from the dataset, and managing a data store using the typed data set accessor. Another method for managing data includes generating a dataset by factoring data from an associated programming model. More specifically, the method includes managing a plurality of tables in the dataset and managing a graph of a relationship of the tables in the dataset. In yet another embodiment of the present invention, a method for managing a dataset includes constructing the dataset and merging the dataset with another dataset.
Still another aspect of the present invention is a computer-readable medium with a dataset data structure thereon, in which the dataset includes at least table object and at least one table relationship object.
The present invention describes systems, clients, servers, methods, and computer-readable media of varying scope. In addition to the aspects and advantages of the present invention described in this summary, further aspects and advantages of the invention will become apparent by reference to the drawings and by reading the detailed description that follows.